tg-me.com/golang_books/996
Last Update:
ΠΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ β ΠΊΠ°ΠΊ Π½Π° ΡΠ·ΡΠΊΠ΅ Go ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π΄ΠΈΡΠΊΠ° (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Β«ΡΡΡΡΠΌΠΈΒ» Π±Π°ΠΉΡΠ°ΠΌΠΈ.
π Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΈΠ»ΠΈΡΠ°:
β’ Π‘ΡΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ 512 Π±Π°ΠΉΡ Ρ Π΄ΠΈΡΠΊΠ° (MBR)
β’ ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β’ ΠΠ°ΡΡΠΈΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ (MBRPartition, GPTHeader ΠΈ Π΄Ρ.)
β’ ΠΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅: ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΠΈΠΏ, ΠΈΠΌΡ (Π΄Π»Ρ GPT)
π§ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π²Π° ΡΠΎΡΠΌΠ°ΡΠ°:
1. MBR (Master Boot Record)
β’ ΠΠΎ 4 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²
β’ ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ β 2 Π’Π
β’ Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΠΊΡΠΎΡΠ΅ (512 Π±Π°ΠΉΡ)
β’ ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ β 16 Π±Π°ΠΉΡ, Ρ ΠΏΠΎΠ»ΡΠΌΠΈ CHS, LBA, ΡΠΈΠΏΠΎΠΌ ΠΈ ΡΠ»Π°Π³Π°ΠΌΠΈ
β’ Π ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΠ° 0x55AA
2. GPT (GUID Partition Table)
β’ Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ >2 Π’Π
β’ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ GUID-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ
β’ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΎ 128 ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²
β’ Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π² UTFβ16
π ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π² Go:
β’ Π‘ΡΡΡΠΊΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ΅ΡΠ΅Π· struct
Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ
β’ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ binary.Read
Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ²
β’ ΠΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ²
ΠΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Π²ΡΠ΅Ρ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ, ΠΏΡΠΈ GPT, ΠΈΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π°.
π‘ ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β’ ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ²
β’ Π£ΡΠΈΡ ΡΠΈΡΠ°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈ ΠΏΠ°ΡΡΠΈΡΡ ΠΈΡ
Π² Go
β’ ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΈΠ»ΠΈΡ, Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ
π§ͺ ΠΠ²ΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ:
β’ ΠΡΠΎΠ²Π΅ΡΠΊΠ° CRC
β’ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ
ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²
β’ Π§ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ
β’ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² WebAssembly Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
π Π§ΠΈΡΠ°ΡΡ